JavaScriptã®æååãã¿ãŒã³ãããã³ã°ã®ããã©ãŒãã³ã¹æé©åæè¡ãæ¢æ±ããããé«éã§å¹ççãªã³ãŒããå®çŸããŸããæ£èŠè¡šçŸã代æ¿ã¢ã«ãŽãªãºã ããã¹ããã©ã¯ãã£ã¹ã«ã€ããŠåŠã³ãŸãããã
JavaScriptæååãã¿ãŒã³ãããã³ã°ã®ããã©ãŒãã³ã¹ïŒæååãã¿ãŒã³ã®æé©å
æååã®ãã¿ãŒã³ãããã³ã°ã¯ãããŒã¿æ€èšŒããããã¹ãåŠçãŸã§ãå€ãã®JavaScriptã¢ããªã±ãŒã·ã§ã³ã«ãããåºæ¬çãªæäœã§ãããããã®æäœã®ããã©ãŒãã³ã¹ã¯ãç¹ã«å€§èŠæš¡ãªããŒã¿ã»ãããè€éãªãã¿ãŒã³ãæ±ãå Žåãã¢ããªã±ãŒã·ã§ã³å šäœã®å¿çæ§ãšå¹çã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸãããã®èšäºã§ã¯ãã°ããŒãã«ãªéçºã³ã³ããã¹ãã§é©çšå¯èœãªããŸããŸãªæè¡ãšãã¹ããã©ã¯ãã£ã¹ãç¶²çŸ ããJavaScriptã®æååãã¿ãŒã³ãããã³ã°ãæé©åããããã®å æ¬çãªã¬ã€ããæäŸããŸãã
JavaScriptã«ãããæååãã¿ãŒã³ãããã³ã°ã®çè§£
æååãã¿ãŒã³ãããã³ã°ã®æ žå¿ã¯ããã倧ããªæååå ããç¹å®ã®ãã¿ãŒã³ã®åºçŸç®æãæ€çŽ¢ããããšã§ããJavaScriptã¯ãã®ç®çã®ããã«ãããã€ãã®çµã¿èŸŒã¿ã¡ãœãããæäŸããŠããŸããããã«ã¯ä»¥äžãå«ãŸããŸãïŒ
String.prototype.indexOf(): éšåæååã®æåã®åºçŸç®æãèŠã€ããããã®ã·ã³ãã«ãªã¡ãœããã§ããString.prototype.lastIndexOf(): éšåæååã®æåŸã®åºçŸç®æãèŠã€ããŸããString.prototype.includes(): æååãç¹å®ã®éšåæååãå«ãã§ãããã©ããããã§ãã¯ããŸããString.prototype.startsWith(): æååãç¹å®ã®éšåæååã§å§ãŸããã©ããããã§ãã¯ããŸããString.prototype.endsWith(): æååãç¹å®ã®éšåæååã§çµãããã©ããããã§ãã¯ããŸããString.prototype.search(): æ£èŠè¡šçŸã䜿çšããŠäžèŽãæ€çŽ¢ããŸããString.prototype.match(): æ£èŠè¡šçŸã«ãã£ãŠèŠã€ãã£ãäžèŽãååŸããŸããString.prototype.replace(): ãã¿ãŒã³ïŒæååãŸãã¯æ£èŠè¡šçŸïŒã®åºçŸç®æãå¥ã®æååã§çœ®æããŸãã
ãããã®ã¡ãœããã¯äŸ¿å©ã§ããããã®ããã©ãŒãã³ã¹ç¹æ§ã¯ç°ãªããŸããåçŽãªéšåæååã®æ€çŽ¢ã«ã¯ãindexOf()ãincludes()ãstartsWith()ãendsWith()ã®ãããªã¡ãœããã§ååãªå Žåãå€ãã§ããããããããè€éãªãã¿ãŒã³ã«ã¯ãéåžžãæ£èŠè¡šçŸã䜿çšãããŸãã
æ£èŠè¡šçŸïŒRegExïŒã®åœ¹å²
æ£èŠè¡šçŸïŒRegExïŒã¯ãè€éãªæ€çŽ¢ãã¿ãŒã³ãå®çŸ©ããããã®åŒ·åã§æè»ãªæ¹æ³ãæäŸããŸãããããã¯æ¬¡ã®ãããªã¿ã¹ã¯ã§åºã䜿çšãããŠããŸãïŒ
- ã¡ãŒã«ã¢ãã¬ã¹ãé»è©±çªå·ã®æ€èšŒã
- ãã°ãã¡ã€ã«ã®è§£æã
- HTMLããã®ããŒã¿æœåºã
- ãã¿ãŒã³ã«åºã¥ããããã¹ãã®çœ®æã
ããããRegExã¯èšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸããäžé©åã«æžãããæ£èŠè¡šçŸã¯ãé倧ãªããã©ãŒãã³ã¹ã®ããã«ããã¯ã«ã€ãªããå¯èœæ§ããããŸããRegExãšã³ãžã³ãã©ã®ããã«æ©èœããããçè§£ããããšã¯ãå¹ççãªãã¿ãŒã³ãæžãããã«äžå¯æ¬ ã§ãã
RegExãšã³ãžã³ã®åºæ¬
ã»ãšãã©ã®JavaScriptã®RegExãšã³ãžã³ã¯ãããã¯ãã©ããã³ã°ã¢ã«ãŽãªãºã ã䜿çšããŠããŸããããã¯ããã¿ãŒã³ãäžèŽããªãå Žåããšã³ãžã³ããããã¯ãã©ãã¯ãããŠä»£æ¿ã®å¯èœæ§ã詊ãããšãæå³ããŸãããã®ããã¯ãã©ããã³ã°ã¯ãç¹ã«è€éãªãã¿ãŒã³ãé·ãå ¥åæååãæ±ãå Žåã«ãéåžžã«ã³ã¹ãããããå¯èœæ§ããããŸãã
æ£èŠè¡šçŸã®ããã©ãŒãã³ã¹æé©å
æ£èŠè¡šçŸãæé©åããŠããã©ãŒãã³ã¹ãåäžãããããã®ããã€ãã®ãã¯ããã¯ã以äžã«ç€ºããŸãïŒ
1. å ·äœçã«èšè¿°ãã
ãã¿ãŒã³ãå ·äœçã§ããã»ã©ãRegExãšã³ãžã³ãè¡ãäœæ¥ã¯å°ãªããªããŸããåºç¯å²ã®å¯èœæ§ã«äžèŽããå¯èœæ§ã®ãããé床ã«äžè¬çãªãã¿ãŒã³ã¯é¿ããŠãã ããã
äŸïŒ ããããæåã«äžèŽãããããã«.*ã䜿çšãã代ããã«ãæ°å€ãæåŸ
ããŠããå Žåã¯\d+ïŒ1ã€ä»¥äžã®æ°åïŒã®ãããªãããå
·äœçãªæåã¯ã©ã¹ã䜿çšããŠãã ããã
2. äžèŠãªããã¯ãã©ããã³ã°ãé¿ãã
ããã¯ãã©ããã³ã°ã¯ããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžãããäž»ãªåå ã§ããéå°ãªããã¯ãã©ããã³ã°ã«ã€ãªããå¯èœæ§ã®ãããã¿ãŒã³ã¯é¿ããŠãã ããã
äŸïŒ æ¥ä»ãç
§åããããã®æ¬¡ã®ãã¿ãŒã³^(.*)([0-9]{4})$ãæååãthis is a long string 2024ãã«é©çšããå ŽåãèããŠã¿ãŸãããã(.*)ã®éšåã¯æåã«æååå
šäœãæ¶è²»ãããã®åŸãšã³ãžã³ã¯æ«å°Ÿã®4æ¡ã®æ°åãèŠã€ããããã«ããã¯ãã©ãã¯ããŸããããè¯ãã¢ãããŒãã¯ã^(.*?)([0-9]{4})$ã®ãããªéè²ªæ¬²ãªæ°éè©ã䜿çšããããã³ã³ããã¹ããèš±ãã°ãããã¯ãã©ããã³ã°ã®å¿
èŠæ§ãå®å
šã«åé¿ãããããå
·äœçãªãã¿ãŒã³ã䜿çšããããšã§ããäŸãã°ãæ¥ä»ãåžžã«ç¹å®ã®åºåãæåã®åŸã«æååã®æ«å°Ÿã«ããããšãããã£ãŠããå Žåãããã©ãŒãã³ã¹ã倧å¹
ã«åäžãããããšãã§ããŸãã
3. ã¢ã³ã«ãŒã䜿çšãã
ã¢ã³ã«ãŒïŒæååã®å
é ã瀺ã^ãæååã®æ«å°Ÿã瀺ã$ãåèªã®å¢çã瀺ã\bïŒã¯ãæ€çŽ¢ç¯å²ãéå®ããããšã§ããã©ãŒãã³ã¹ã倧å¹
ã«åäžãããããšãã§ããŸãã
äŸïŒ æååã®å
é ã§çºçããäžèŽã«ã®ã¿é¢å¿ãããå Žåã¯ã^ã¢ã³ã«ãŒã䜿çšããŠãã ãããåæ§ã«ãæ«å°Ÿã®äžèŽã®ã¿ãå¿
èŠãªå Žåã¯$ã¢ã³ã«ãŒã䜿çšããŠãã ããã
4. æåã¯ã©ã¹ãè³¢ã䜿çšãã
æåã¯ã©ã¹ïŒäŸïŒ[a-z]ã[0-9]ã\wïŒã¯ãäžè¬çã«éžæïŒäŸïŒ(a|b|c)ïŒãããé«éã§ããå¯èœãªéãæåã¯ã©ã¹ã䜿çšããŠãã ããã
5. éžæïŒAlternationïŒãæé©åãã
éžæã䜿çšããå¿ èŠãããå Žåã¯ãéžæè¢ãæãå¯èœæ§ã®é«ããã®ããæãå¯èœæ§ã®äœããã®ã®é ã«äžŠã¹ãŠãã ãããããã«ãããå€ãã®å ŽåãRegExãšã³ãžã³ã¯ããè¿ éã«äžèŽãèŠã€ããããšãã§ããŸãã
äŸïŒ ãappleãããbananaãããcherryããšããåèªãæ€çŽ¢ããŠããŠããappleããæãäžè¬çãªåèªã§ããå Žåãéžæã(apple|banana|cherry)ã®é ã«äžŠã¹ãŸãã
6. æ£èŠè¡šçŸãããªã³ã³ãã€ã«ãã
æ£èŠè¡šçŸã¯ã䜿çšãããåã«å
éšè¡šçŸã«ã³ã³ãã€ã«ãããŸããåãæ£èŠè¡šçŸãè€æ°å䜿çšããå Žåã¯ãRegExpãªããžã§ã¯ããäœæããŠåå©çšããããšã§ãããªã³ã³ãã€ã«ããŠãã ããã
äŸïŒ
```javascript const regex = new RegExp("pattern"); // RegExãããªã³ã³ãã€ã« for (let i = 0; i < 1000; i++) { regex.test(string); } ```ããã¯ãã«ãŒãå
ã§æ°ããRegExpãªããžã§ã¯ããäœæããããã倧å¹
ã«é«éã§ãã
7. éãã£ããã£ã°ã«ãŒãã䜿çšãã
ãã£ããã£ã°ã«ãŒãïŒæ¬åŒ§ã§å®çŸ©ïŒã¯ãäžèŽããéšåæååãä¿åããŸãããããã®ãã£ããã£ãããéšåæååã«ã¢ã¯ã»ã¹ããå¿
èŠããªãå Žåã¯ãéãã£ããã£ã°ã«ãŒãïŒ(?:...)ïŒã䜿çšããŠãããããä¿åãããªãŒããŒããããåé¿ããŠãã ããã
äŸïŒ ãã¿ãŒã³ã«äžèŽãããã ãã§ãäžèŽããããã¹ããååŸããå¿
èŠããªãå Žåã¯ã(pattern)ã®ä»£ããã«(?:pattern)ã䜿çšããŸãã
8. å¯èœãªéãè²ªæ¬²ãªæ°éè©ãé¿ãã
è²ªæ¬²ãªæ°éè©ïŒäŸïŒ*ã+ïŒã¯ãå¯èœãªéãå€ãã®äžèŽã詊ã¿ãŸããå Žåã«ãã£ãŠã¯ãç¹ã«ããã¯ãã©ããã³ã°ãæžå¿µãããå Žåã«ã¯ãéè²ªæ¬²ãªæ°éè©ïŒäŸïŒ*?ã+?ïŒã®æ¹ãå¹ççã§ãã
äŸïŒ åã®ããã¯ãã©ããã³ã°ã®äŸã§ç€ºããããã«ã.*ã®ä»£ããã«.*?ã䜿çšãããšãäžéšã®ã·ããªãªã§éå°ãªããã¯ãã©ããã³ã°ãé²ãããšãã§ããŸãã
9. åçŽãªã±ãŒã¹ã§ã¯æååã¡ãœããã®äœ¿çšãæ€èšãã
æååãç¹å®ã®éšåæååãå«ãã§ãããã©ããã確èªãããªã©ãåçŽãªãã¿ãŒã³ãããã³ã°ã¿ã¹ã¯ã®å ŽåãindexOf()ãincludes()ã®ãããªæååã¡ãœããã䜿çšããæ¹ããæ£èŠè¡šçŸã䜿çšãããããé«éãªå ŽåããããŸããæ£èŠè¡šçŸã«ã¯ã³ã³ãã€ã«ãšå®è¡ã«é¢é£ãããªãŒããŒãããããããããããè€éãªãã¿ãŒã³çšã«ç¢ºä¿ããã®ãæåã§ãã
æååãã¿ãŒã³ãããã³ã°ã®ä»£æ¿ã¢ã«ãŽãªãºã
æ£èŠè¡šçŸã¯åŒ·åã§ããããã¹ãŠã®æååãã¿ãŒã³ãããã³ã°åé¡ã«å¯ŸããŠåžžã«æãå¹ççãªè§£æ±ºçã§ãããšã¯éããŸãããç¹å®ã®çš®é¡ã®ãã¿ãŒã³ãããŒã¿ã»ããã«å¯ŸããŠã¯ã代æ¿ã¢ã«ãŽãªãºã ãå€§å¹ ãªããã©ãŒãã³ã¹åäžãããããããšããããŸãã
1. ãã€ã€ãŒã»ã ãŒã¢æ³
ãã€ã€ãŒã»ã ãŒã¢æ³ã¯ããã倧ããªããã¹ãå ããåºå®é·ã®æååã®åºçŸç®æãèŠã€ããããã«ãã䜿çšãããé«éãªæååæ€çŽ¢ã¢ã«ãŽãªãºã ã§ããæ€çŽ¢ãã¿ãŒã³ãååŠçããŠããŒãã«ãäœæããã¢ã«ãŽãªãºã ãäžèŽãå«ãå¯èœæ§ã®ãªãããã¹ãéšåãã¹ãããã§ããããã«ããŸããJavaScriptã®çµã¿èŸŒã¿æååã¡ãœããã§ã¯çŽæ¥ãµããŒããããŠããŸããããããŸããŸãªã©ã€ãã©ãªã§å®è£ ãèŠã€ããããæåã§äœæããããšãã§ããŸãã
2. ã¯ããŒã¹ã»ã¢ãªã¹ã»ãã©ããïŒKMPïŒæ³
KMPæ³ã¯ãäžèŠãªããã¯ãã©ããã³ã°ãåé¿ãããã1ã€ã®å¹ççãªæååæ€çŽ¢ã¢ã«ãŽãªãºã ã§ãããããæ€çŽ¢ãã¿ãŒã³ãååŠçããŠãæ€çŽ¢ããã»ã¹ãã¬ã€ãããããŒãã«ãäœæããŸãããã€ã€ãŒã»ã ãŒã¢æ³ãšåæ§ã«ãKMPã¯éåžžãæåã§å®è£ ããããã©ã€ãã©ãªã§èŠã€ããããŸãã
3. ãã©ã€æšïŒTrieïŒããŒã¿æ§é
ãã©ã€æšïŒãã¬ãã£ãã¯ã¹ããªãŒãšãåŒã°ããŸãïŒã¯ãæååã®ã»ãããå¹ççã«ä¿åããã³æ€çŽ¢ããããã«äœ¿çšã§ããæšæ§é ã®ããŒã¿æ§é ã§ãããã©ã€æšã¯ãããã¹ãå ã§è€æ°ã®ãã¿ãŒã³ãæ€çŽ¢ããå Žåãããã¬ãã£ãã¯ã¹ããŒã¹ã®æ€çŽ¢ãå®è¡ããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãããªãŒãã³ã³ããªãŒããã¹ãã«ãã§ãã¯ãªã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ãã䜿çšãããŸãã
4. ãµãã£ãã¯ã¹ããªãŒïŒãµãã£ãã¯ã¹ã¢ã¬ã€
ãµãã£ãã¯ã¹ããªãŒãšãµãã£ãã¯ã¹ã¢ã¬ã€ã¯ãå¹ççãªæååæ€çŽ¢ãšãã¿ãŒã³ãããã³ã°ã«äœ¿çšãããããŒã¿æ§é ã§ãããããã¯ãæé·å ±ééšåæååã®æ€çŽ¢ããå€§èŠæš¡ãªããã¹ãå ã§ã®è€æ°ãã¿ãŒã³ã®æ€çŽ¢ãªã©ã®åé¡ã解決ããã®ã«ç¹ã«å¹æçã§ãããããã®æ§é ã®æ§ç¯ã¯èšç®ã³ã¹ããé«ãå ŽåããããŸãããäžåºŠæ§ç¯ããããšéåžžã«é«éãªæ€çŽ¢ãå¯èœã«ãªããŸãã
ãã³ãããŒã¯ãšãããã¡ã€ãªã³ã°
ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã«æé©ãªæååãã¿ãŒã³ãããã³ã°æè¡ã決å®ããæåã®æ¹æ³ã¯ãã³ãŒãã®ãã³ãããŒã¯ãšãããã¡ã€ãªã³ã°ãè¡ãããšã§ããæ¬¡ã®ãããªããŒã«ã䜿çšããŠãã ããïŒ
console.time()ãšconsole.timeEnd(): ã³ãŒããããã¯ã®å®è¡æéãæž¬å®ããããã®ã·ã³ãã«ã§å¹æçãªæ¹æ³ã§ãã- JavaScriptãããã¡ã€ã©ïŒäŸïŒChrome DevToolsãNode.js InspectorïŒ: CPU䜿çšçãã¡ã¢ãªå²ãåœãŠã颿°åŒã³åºãã¹ã¿ãã¯ã«é¢ããè©³çŽ°ãªæ å ±ãæäŸããŸãã
- jsperf.com: ãã©ãŠã¶ã§JavaScriptã®ããã©ãŒãã³ã¹ãã¹ããäœæããŠå®è¡ã§ãããŠã§ããµã€ãã§ãã
ãã³ãããŒã¯ãè¡ãéã¯ãæ¬çªç°å¢ã®æ¡ä»¶ãæ£ç¢ºã«åæ ããçŸå®çãªããŒã¿ãšãã¹ãã±ãŒã¹ã䜿çšããŠãã ããã
ã±ãŒã¹ã¹ã¿ãã£ãšäŸ
äŸ1ïŒã¡ãŒã«ã¢ãã¬ã¹ã®æ€èšŒ
ã¡ãŒã«ã¢ãã¬ã¹ã®æ€èšŒã¯ãæ£èŠè¡šçŸã䌎ãããšãå€ãäžè¬çãªã¿ã¹ã¯ã§ããåçŽãªã¡ãŒã«æ€èšŒãã¿ãŒã³ã¯æ¬¡ã®ããã«ãªããŸãïŒ
```javascript const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; console.log(emailRegex.test("test@example.com")); // true console.log(emailRegex.test("invalid email")); // false ```ãããããã®ãã¿ãŒã³ã¯ããŸã峿 Œã§ã¯ãªããç¡å¹ãªã¡ãŒã«ã¢ãã¬ã¹ãèš±å¯ããå¯èœæ§ããããŸããããå ç¢ãªãã¿ãŒã³ã¯æ¬¡ã®ããã«ãªããŸãïŒ
```javascript const emailRegexRobust = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; console.log(emailRegexRobust.test("test@example.com")); // true console.log(emailRegexRobust.test("invalid email")); // false ```2çªç®ã®ãã¿ãŒã³ã¯ããæ£ç¢ºã§ãããåæã«ããè€éã§ãæœåšçã«äœéã§ãã倧éã®ã¡ãŒã«æ€èšŒãè¡ãå Žåã¯ãå°çšã®ã¡ãŒã«æ€èšŒã©ã€ãã©ãªãAPIã䜿çšãããªã©ã代æ¿ã®æ€èšŒæè¡ãæ€èšãã䟡å€ããããããããŸããã
äŸ2ïŒãã°ãã¡ã€ã«ã®è§£æ
ãã°ãã¡ã€ã«ã®è§£æã«ã¯ã倧éã®ããã¹ãããç¹å®ã®ãã¿ãŒã³ãæ€çŽ¢ããããšããã°ãã°å«ãŸããŸããäŸãã°ãç¹å®ã®ãšã©ãŒã¡ãã»ãŒãžãå«ããã¹ãŠã®è¡ãæœåºãããå ŽåããããŸãã
```javascript const logData = "... ERROR: Something went wrong ... WARNING: Low disk space ... ERROR: Another error occurred ..."; const errorRegex = /^.*ERROR:.*$/gm; // 'm'ãã©ã°ã¯è€æ°è¡ã«å¯Ÿå¿ const errorLines = logData.match(errorRegex); console.log(errorLines); // [ 'ERROR: Something went wrong', 'ERROR: Another error occurred' ] ```ãã®äŸã§ã¯ãerrorRegexãã¿ãŒã³ã¯ãERRORããšããåèªãå«ãè¡ãæ€çŽ¢ããŸããmãã©ã°ã¯è€æ°è¡ãããã³ã°ãæå¹ã«ãããã¿ãŒã³ãè€æ°è¡ã«ããã£ãŠæ€çŽ¢ã§ããããã«ããŸããéåžžã«å€§ããªãã°ãã¡ã€ã«ãè§£æããå Žåã¯ããã¡ã€ã«å
šäœãäžåºŠã«ã¡ã¢ãªã«èªã¿èŸŒãã®ãé¿ããããã«ãã¹ããªãŒãã³ã°ã¢ãããŒãã®äœ¿çšãæ€èšããŠãã ããããã®æèã§ã¯ãNode.jsã®ã¹ããªãŒã ãç¹ã«åœ¹ç«ã¡ãŸããããã«ãïŒå¯èœã§ããã°ïŒãã°ããŒã¿ãã€ã³ããã¯ã¹åããããšã§ãæ€çŽ¢ããã©ãŒãã³ã¹ãåçã«åäžãããããšãã§ããŸãã
äŸ3ïŒHTMLããã®ããŒã¿æœåº
HTMLããã®ããŒã¿æœåºã¯ãHTMLããã¥ã¡ã³ãã®è€éã§ãã°ãã°äžè²«æ§ã®ãªãæ§é ã®ããã«å°é£ãªå ŽåããããŸãããã®ç®çã®ããã«æ£èŠè¡šçŸã䜿çšããããšãã§ããŸããããããã¯ãã°ãã°æãå ç¢ãªè§£æ±ºçã§ã¯ãããŸãããjsdomã®ãããªã©ã€ãã©ãªã¯ãHTMLãè§£æããã³æäœããããã®ããä¿¡é Œæ§ã®é«ãæ¹æ³ãæäŸããŸãã
ããããããŒã¿æœåºã«æ£èŠè¡šçŸã䜿çšããå¿ èŠãããå Žåã¯ãæå³ããªãã³ã³ãã³ãã«äžèŽããªãããã«ããã¿ãŒã³ãã§ããã ãå ·äœçã«ããããã«ããŠãã ããã
ã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã®ã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåãæååãã¿ãŒã³ãããã³ã°ã«åœ±é¿ãäžããå¯èœæ§ã®ããæåçãªéããããŒã«ãªãŒãŒã·ã§ã³ã®åé¡ãèæ ®ããããšãéèŠã§ããäŸãã°ïŒ
- æåãšã³ã³ãŒãã£ã³ã°: åœéæåã«é¢ããåé¡ãé¿ããããã«ãã¢ããªã±ãŒã·ã§ã³ãç°ãªãæåãšã³ã³ãŒãã£ã³ã°ïŒäŸïŒUTF-8ïŒãæ£ããåŠçããããšã確èªããŠãã ããã
- ãã±ãŒã«åºæã®ãã¿ãŒã³: é»è©±çªå·ãæ¥ä»ãé貚ãªã©ã®ãã¿ãŒã³ã¯ããã±ãŒã«ã«ãã£ãŠå€§ããç°ãªããŸããå¯èœãªéããã±ãŒã«åºæã®ãã¿ãŒã³ã䜿çšããŠãã ãããJavaScriptã®
Intlã®ãããªã©ã€ãã©ãªã圹ç«ã¡ãŸãã - 倧æåãšå°æåãåºå¥ããªããããã³ã°: æåã®å€§æåå°æåã®ã«ãŒã«ã®éãã«ããã倧æåãšå°æåãåºå¥ããªããããã³ã°ããã±ãŒã«ã«ãã£ãŠç°ãªãçµæãçãå¯èœæ§ãããããšã«æ³šæããŠãã ããã
ãã¹ããã©ã¯ãã£ã¹
JavaScriptã®æååãã¿ãŒã³ãããã³ã°ãæé©åããããã®äžè¬çãªãã¹ããã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãïŒ
- ããŒã¿ãçè§£ãã: ããŒã¿ãåæããæãäžè¬çãªãã¿ãŒã³ãç¹å®ããŸããããã¯ãæãé©åãªãã¿ãŒã³ãããã³ã°æè¡ãéžæããã®ã«åœ¹ç«ã¡ãŸãã
- å¹ççãªãã¿ãŒã³ãäœæãã: äžèšã®æé©åæè¡ã«åŸã£ãŠãå¹ççãªæ£èŠè¡šçŸãäœæããäžèŠãªããã¯ãã©ããã³ã°ãé¿ããŠãã ããã
- ãã³ãããŒã¯ãšãããã¡ã€ã«ãè¡ã: ã³ãŒãã®ãã³ãããŒã¯ãšãããã¡ã€ã«ãè¡ããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæé©åã®åœ±é¿ã枬å®ããŸãã
- é©åãªããŒã«ãéžæãã: ãã¿ãŒã³ã®è€éããšããŒã¿ã®ãµã€ãºã«åºã¥ããŠãé©åãªãã¿ãŒã³ãããã³ã°ã¡ãœãããéžæããŸããåçŽãªãã¿ãŒã³ã«ã¯æååã¡ãœããããããè€éãªãã¿ãŒã³ã«ã¯æ£èŠè¡šçŸã代æ¿ã¢ã«ãŽãªãºã ã®äœ¿çšãæ€èšããŠãã ããã
- é©åãªå Žåã«ã©ã€ãã©ãªã䜿çšãã: æ¢åã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã掻çšããŠãã³ãŒããç°¡çŽ åããããã©ãŒãã³ã¹ãåäžãããŸããäŸãã°ãå°çšã®ã¡ãŒã«æ€èšŒã©ã€ãã©ãªãæååæ€çŽ¢ã©ã€ãã©ãªã®äœ¿çšãæ€èšããŠãã ããã
- çµæããã£ãã·ã¥ãã: å ¥åããŒã¿ããã¿ãŒã³ãé »ç¹ã«å€æŽãããªãå Žåã¯ããã¿ãŒã³ãããã³ã°æäœã®çµæããã£ãã·ã¥ããŠãç¹°ãè¿ãåèšç®ããã®ãé¿ããããšãæ€èšããŠãã ããã
- éåæåŠçãæ€èšãã: éåžžã«é·ãæååãè€éãªãã¿ãŒã³ã®å Žåãã¡ã€ã³ã¹ã¬ããããããã¯ãããå¿çæ§ã®é«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãç¶æããããã«ãéåæåŠçïŒäŸïŒWeb WorkersïŒã®äœ¿çšãæ€èšããŠãã ããã
çµè«
JavaScriptã®æååãã¿ãŒã³ãããã³ã°ã®æé©åã¯ã髿§èœãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«äžå¯æ¬ ã§ããç°ãªããã¿ãŒã³ãããã³ã°ã¡ãœããã®ããã©ãŒãã³ã¹ç¹æ§ãçè§£ãããã®èšäºã§èª¬æããæé©åæè¡ãé©çšããããšã§ãã³ãŒãã®å¿çæ§ãšå¹çãå€§å¹ ã«åäžãããããšãã§ããŸããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæé©åã®åœ±é¿ã枬å®ããããã«ãã³ãŒãã®ãã³ãããŒã¯ãšãããã¡ã€ã«ãè¡ãããšãå¿ããªãã§ãã ããããããã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãå€§èŠæš¡ãªããŒã¿ã»ãããè€éãªãã¿ãŒã³ãæ±ãå Žåã§ããã¢ããªã±ãŒã·ã§ã³ãè¯å¥œã«åäœããããšãä¿èšŒã§ããŸãããŸããäžçäžã§æé«ã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããã«ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ãšããŒã«ãªãŒãŒã·ã§ã³ã®èæ ®äºé ãå¿ããªãã§ãã ããã